(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 10.4' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       158,          7]
NotebookDataLength[     31780,       1064]
NotebookOptionsPosition[     27271,        926]
NotebookOutlinePosition[     29787,        988]
CellTagsIndexPosition[     29702,        983]
WindowTitle->FCLoopBasisFindCompletion
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[GridBox[{
   {Cell["FEYN CALC SYMBOL", "PacletNameCell"], Cell[TextData[Cell[BoxData[
     ActionMenuBox[
      FrameBox[
       InterpretationBox[Cell[TextData[{
         "URL",
         StyleBox[" \[FilledDownTriangle]", "AnchorBarArrow",
          StripOnInput->False]
        }]],
        TextCell[
         Row[{"URL", 
           Style[" \[FilledDownTriangle]", "AnchorBarArrow"]}]]],
       StripOnInput->
        False], {"\<\"FeynCalc/ref/FCLoopBasisFindCompletion\"\>":>
      None, "\<\"Copy Wolfram Documentation Center URL\"\>":>
      Module[{DocumentationSearch`Private`nb$}, 
       DocumentationSearch`Private`nb$ = NotebookPut[
          Notebook[{
            Cell["FeynCalc/ref/FCLoopBasisFindCompletion"]}, Visible -> 
           False]]; SelectionMove[
        DocumentationSearch`Private`nb$, All, Notebook]; 
       FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
       NotebookClose[DocumentationSearch`Private`nb$]; Null], 
      Delimiter, "\<\"Copy web URL\"\>":>
      Module[{DocumentationSearch`Private`nb$}, 
       DocumentationSearch`Private`nb$ = NotebookPut[
          Notebook[{
            Cell[
             BoxData[
              MakeBoxes[
               Hyperlink[
               "http://reference.wolfram.com/language/FeynCalc/ref/\
FCLoopBasisFindCompletion.html"], StandardForm]], "Input", TextClipboardType -> 
             "PlainText"]}, Visible -> False]]; 
       SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
       FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
       NotebookClose[DocumentationSearch`Private`nb$]; 
       Null], "\<\"Go to web URL\"\>":>FrontEndExecute[{
        NotebookLocate[{
          URL[
           StringJoin[
            If[
             TrueQ[DocumentationBuild`Make`Private`wsmlinkQ$106406], 
             "http://reference.wolfram.com/system-modeler/", 
             "http://reference.wolfram.com/language/"], 
            "FeynCalc/ref/FCLoopBasisFindCompletion", ".html"]], None}]}]},
      Appearance->None,
      MenuAppearance->Automatic,
      MenuStyle->"URLMenu"]],
     LineSpacing->{1.4, 0}]], "AnchorBar"]}
  }]], "AnchorBarGrid",
 GridBoxOptions->{GridBoxItemSize->{"Columns" -> {
     Scaled[0.65], {
      Scaled[0.34]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, 
   "RowsIndexed" -> {}}},
 CellID->1],

Cell[TextData[{
 Cell["FCLoopBasisFindCompletion", "ObjectName"],
 Cell[BoxData[
  InterpretationBox[
   StyleBox[
    GraphicsBox[{},
     BaselinePosition->Baseline,
     ImageSize->{8, 0}],
    CacheGraphics->False],
   Spacer[8]]]],
 Cell[BoxData[""], "ObjectNameTranslation"]
}], "ObjectNameGrid"],

Cell[CellGroupData[{

Cell[BoxData[GridBox[{
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{"FCLoopBasisFindCompletion", "[", 
       RowBox[{"int", ",", 
        RowBox[{"{", 
         RowBox[{"q1", ",", "q2", ",", "..."}], "}"}]}], "]"}]], 
      "InlineFormula"],
     " \[LineSeparator]determines propagators that need to be included in the \
loop integral int (that depends on the loop momenta q1,q2,...), to ensure \
that the propagators of int form a basis. For integrals with propagators that \
do not form a basis, such a completion must be found prior to processing \
those integrals with tools that do Integration-By-Parts (IBP) reduction (e.g. \
FIRE). Furthermore, int must not contain propagators that are linearly \
dependent."
    }]]}
  }]], "Usage",
 GridBoxOptions->{
 GridBoxBackground->{
  "Columns" -> {{None}}, "ColumnsIndexed" -> {}, "Rows" -> {{None}}, 
   "RowsIndexed" -> {}}},
 CellID->982511436],

Cell[CellGroupData[{

Cell[TextData[Cell[BoxData[
 ButtonBox[Cell[TextData[{
   Cell[BoxData[
    InterpretationBox[
     StyleBox[
      GraphicsBox[{},
       BaselinePosition->Baseline,
       ImageSize->{6, 0}],
      CacheGraphics->False],
     Spacer[6]]]],
   "Details"
  }], "NotesFrameText"],
  Appearance->{Automatic, None},
  BaseStyle->None,
  ButtonFunction:>(FrontEndExecute[{
     FrontEnd`SelectionMove[
      FrontEnd`SelectedNotebook[], All, ButtonCell], 
     FrontEndToken["OpenCloseGroup"], 
     FrontEnd`SelectionMove[
      FrontEnd`SelectedNotebook[], After, CellContents]}]& ),
  Evaluator->None,
  Method->"Preemptive"]]]], "NotesSection",
 WholeCellGroupOpener->True,
 CellGroupingRules->{"SectionGrouping", 50},
 CellID->1043018306],

Cell["", "SectionHeaderSpacer"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Options", "[", "FCLoopBasisFindCompletion", "]"}]], "Input",
 CellLabel->"In[25]:=",
 CellID->725102416],

Cell[BoxData[
 FormBox[
  RowBox[{"{", 
   RowBox[{
    RowBox[{"Abort", "\[Rule]", "False"}], ",", 
    RowBox[{"ExpandScalarProduct", "\[Rule]", "True"}], ",", 
    RowBox[{"FeynCalcExternal", "\[Rule]", "False"}], ",", 
    RowBox[{"FeynCalcInternal", "\[Rule]", "False"}], ",", 
    RowBox[{"FCVerbose", "\[Rule]", "False"}], ",", 
    RowBox[{"Check", "\[Rule]", "True"}], ",", 
    RowBox[{"Method", "\[Rule]", "ScalarProduct"}], ",", 
    RowBox[{"SetDimensions", "\[Rule]", 
     RowBox[{"{", 
      RowBox[{"3", ",", "4", ",", "D", ",", 
       RowBox[{"D", "-", "1"}]}], "}"}]}]}], "}"}], 
  TraditionalForm]], "Output",
 ImageSize->{430, 54},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[25]=",
 CellID->1566384245]
}, Open  ]]
}, Closed]]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  InterpretationBox[
   StyleBox[
    GraphicsBox[{},
     BaselinePosition->Baseline,
     ImageSize->{6, 0}],
    CacheGraphics->False],
   Spacer[6]]]],
 "Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount"]
}], "PrimaryExamplesSection",
 WholeCellGroupOpener->True,
 CellTags->"PrimaryExamplesSection",
 CellID->440292796],

Cell[CellGroupData[{

Cell[TextData[{
 "Basic Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(1)", "ExampleCount"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CellID->932510835],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"FAD", "[", 
  RowBox[{"q", ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"q", "-", "p", "+", "l"}], ",", "m"}], "}"}]}], "]"}]], "Input",
 CellLabel->"In[1]:=",
 CellID->680451350],

Cell[BoxData[
 FormBox[
  FractionBox["1", 
   RowBox[{
    InterpretationBox[
     SuperscriptBox[
      FormBox[
       FormBox["q",
        TraditionalForm],
       TraditionalForm], "2"],
     SequenceForm[
      FeynCalc`Pair[
       FeynCalc`Momentum[$CellContext`q, D], 
       FeynCalc`Momentum[$CellContext`q, D]]],
     Editable->False], ".", 
    RowBox[{"(", 
     InterpretationBox[
      RowBox[{
       SuperscriptBox[
        RowBox[{
         FormBox["\<\"(\"\>",
          TraditionalForm], 
         FormBox[
          FormBox[
           RowBox[{
            FormBox["l",
             TraditionalForm], "-", 
            FormBox["p",
             TraditionalForm], "+", 
            FormBox["q",
             TraditionalForm]}],
           TraditionalForm],
          TraditionalForm], 
         FormBox["\<\")\"\>",
          TraditionalForm]}], "2"], "\[InvisibleSpace]", "\<\"-\"\>", 
       "\[InvisibleSpace]", 
       SuperscriptBox["m", "2"]}],
      SequenceForm[
       FeynCalc`Pair[
        FeynCalc`Momentum[$CellContext`l - $CellContext`p + $CellContext`q, 
         D], 
        FeynCalc`Momentum[$CellContext`l - $CellContext`p + $CellContext`q, 
         D]], "-", $CellContext`m^2],
      Editable->False], ")"}]}]], TraditionalForm]], "Output",
 ImageSize->{169, 43},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[1]=",
 CellID->2102952412]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"FCLoopBasisFindCompletion", "[", 
  RowBox[{"%", ",", 
   RowBox[{"{", "q", "}"}]}], "]"}]], "Input",
 CellLabel->"In[2]:=",
 CellID->1061934835],

Cell[BoxData[
 FormBox[
  RowBox[{"{", 
   RowBox[{
    FormBox[
     FractionBox["1", 
      RowBox[{
       InterpretationBox[
        SuperscriptBox[
         FormBox[
          FormBox["q",
           TraditionalForm],
          TraditionalForm], "2"],
        SequenceForm[
         FeynCalc`Pair[
          FeynCalc`Momentum[$CellContext`q, D], 
          FeynCalc`Momentum[$CellContext`q, D]]],
        Editable->False], ".", 
       RowBox[{"(", 
        InterpretationBox[
         RowBox[{
          SuperscriptBox[
           RowBox[{
            FormBox["\<\"(\"\>",
             TraditionalForm], 
            FormBox[
             FormBox[
              RowBox[{
               FormBox["l",
                TraditionalForm], "-", 
               FormBox["p",
                TraditionalForm], "+", 
               FormBox["q",
                TraditionalForm]}],
              TraditionalForm],
             TraditionalForm], 
            FormBox["\<\")\"\>",
             TraditionalForm]}], "2"], "\[InvisibleSpace]", "\<\"-\"\>", 
          "\[InvisibleSpace]", 
          SuperscriptBox["m", "2"]}],
         SequenceForm[
          FeynCalc`Pair[
          FeynCalc`Momentum[$CellContext`l, D] - 
           FeynCalc`Momentum[$CellContext`p, D] + 
           FeynCalc`Momentum[$CellContext`q, D], 
           FeynCalc`Momentum[$CellContext`l, D] - 
           FeynCalc`Momentum[$CellContext`p, D] + 
           FeynCalc`Momentum[$CellContext`q, D]], "-", $CellContext`m^2],
         Editable->False], ")"}]}]],
     TraditionalForm], ",", 
    RowBox[{"{", 
     RowBox[{
      FormBox[
       FormBox["l",
        TraditionalForm],
       TraditionalForm], 
      FormBox["\<\"\[CenterDot]\"\>",
       TraditionalForm], 
      FormBox[
       FormBox["q",
        TraditionalForm],
       TraditionalForm]}], "}"}]}], "}"}], TraditionalForm]], "Output",
 ImageSize->{238, 43},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[2]=",
 CellID->1399048154]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"FAD", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"q1", ",", "m1"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"q2", ",", "m2"}], "}"}]}], "]"}]], "Input",
 CellLabel->"In[3]:=",
 CellID->437279666],

Cell[BoxData[
 FormBox[
  FractionBox["1", 
   RowBox[{
    RowBox[{"(", 
     InterpretationBox[
      RowBox[{
       SuperscriptBox[
        FormBox[
         FormBox["q1",
          TraditionalForm],
         TraditionalForm], "2"], "\[InvisibleSpace]", "\<\"-\"\>", 
       "\[InvisibleSpace]", 
       SuperscriptBox["m1", "2"]}],
      SequenceForm[
       FeynCalc`Pair[
        FeynCalc`Momentum[$CellContext`q1, D], 
        FeynCalc`Momentum[$CellContext`q1, D]], "-", $CellContext`m1^2],
      Editable->False], ")"}], ".", 
    RowBox[{"(", 
     InterpretationBox[
      RowBox[{
       SuperscriptBox[
        FormBox[
         FormBox["q2",
          TraditionalForm],
         TraditionalForm], "2"], "\[InvisibleSpace]", "\<\"-\"\>", 
       "\[InvisibleSpace]", 
       SuperscriptBox["m2", "2"]}],
      SequenceForm[
       FeynCalc`Pair[
        FeynCalc`Momentum[$CellContext`q2, D], 
        FeynCalc`Momentum[$CellContext`q2, D]], "-", $CellContext`m2^2],
      Editable->False], ")"}]}]], TraditionalForm]], "Output",
 ImageSize->{155, 43},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[3]=",
 CellID->1080324517]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"FCLoopBasisFindCompletion", "[", 
  RowBox[{"%", ",", 
   RowBox[{"{", 
    RowBox[{"q1", ",", "q2"}], "}"}]}], "]"}]], "Input",
 CellLabel->"In[4]:=",
 CellID->1012989858],

Cell[BoxData[
 FormBox[
  RowBox[{"{", 
   RowBox[{
    FormBox[
     FractionBox["1", 
      RowBox[{
       RowBox[{"(", 
        InterpretationBox[
         RowBox[{
          SuperscriptBox[
           FormBox[
            FormBox["q1",
             TraditionalForm],
            TraditionalForm], "2"], "\[InvisibleSpace]", "\<\"-\"\>", 
          "\[InvisibleSpace]", 
          SuperscriptBox["m1", "2"]}],
         SequenceForm[
          FeynCalc`Pair[
           FeynCalc`Momentum[$CellContext`q1, D], 
           FeynCalc`Momentum[$CellContext`q1, D]], "-", $CellContext`m1^2],
         Editable->False], ")"}], ".", 
       RowBox[{"(", 
        InterpretationBox[
         RowBox[{
          SuperscriptBox[
           FormBox[
            FormBox["q2",
             TraditionalForm],
            TraditionalForm], "2"], "\[InvisibleSpace]", "\<\"-\"\>", 
          "\[InvisibleSpace]", 
          SuperscriptBox["m2", "2"]}],
         SequenceForm[
          FeynCalc`Pair[
           FeynCalc`Momentum[$CellContext`q2, D], 
           FeynCalc`Momentum[$CellContext`q2, D]], "-", $CellContext`m2^2],
         Editable->False], ")"}]}]],
     TraditionalForm], ",", 
    RowBox[{"{", 
     RowBox[{
      FormBox[
       FormBox["q1",
        TraditionalForm],
       TraditionalForm], 
      FormBox["\<\"\[CenterDot]\"\>",
       TraditionalForm], 
      FormBox[
       FormBox["q2",
        TraditionalForm],
       TraditionalForm]}], "}"}]}], "}"}], TraditionalForm]], "Output",
 ImageSize->{234, 43},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[4]=",
 CellID->1807818720]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"FAD", "[", 
   RowBox[{
    RowBox[{"q1", "+", "p"}], ",", 
    RowBox[{"q2", "-", "k"}]}], "]"}], " ", 
  RowBox[{"SPD", "[", 
   RowBox[{"q1", ",", "q2"}], "]"}]}]], "Input",
 CellLabel->"In[5]:=",
 CellID->152449709],

Cell[BoxData[
 FormBox[
  FractionBox[
   FormBox[
    RowBox[{
     FormBox[
      FormBox["q1",
       TraditionalForm],
      TraditionalForm], 
     FormBox["\<\"\[CenterDot]\"\>",
      TraditionalForm], 
     FormBox[
      FormBox["q2",
       TraditionalForm],
      TraditionalForm]}],
    TraditionalForm], 
   RowBox[{
    InterpretationBox[
     SuperscriptBox[
      RowBox[{
       FormBox["\<\"(\"\>",
        TraditionalForm], 
       FormBox[
        FormBox[
         RowBox[{
          FormBox["p",
           TraditionalForm], "+", 
          FormBox["q1",
           TraditionalForm]}],
         TraditionalForm],
        TraditionalForm], 
       FormBox["\<\")\"\>",
        TraditionalForm]}], "2"],
     SequenceForm[
      FeynCalc`Pair[
       FeynCalc`Momentum[$CellContext`p + $CellContext`q1, D], 
       FeynCalc`Momentum[$CellContext`p + $CellContext`q1, D]]],
     Editable->False], ".", 
    InterpretationBox[
     SuperscriptBox[
      RowBox[{
       FormBox["\<\"(\"\>",
        TraditionalForm], 
       FormBox[
        FormBox[
         RowBox[{
          FormBox["q2",
           TraditionalForm], "-", 
          FormBox["k",
           TraditionalForm]}],
         TraditionalForm],
        TraditionalForm], 
       FormBox["\<\")\"\>",
        TraditionalForm]}], "2"],
     SequenceForm[
      FeynCalc`Pair[
       FeynCalc`Momentum[-$CellContext`k + $CellContext`q2, D], 
       FeynCalc`Momentum[-$CellContext`k + $CellContext`q2, D]]],
     Editable->False]}]], TraditionalForm]], "Output",
 ImageSize->{152, 40},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[5]=",
 CellID->227748313]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"FCLoopBasisFindCompletion", "[", 
  RowBox[{"%", ",", 
   RowBox[{"{", 
    RowBox[{"q1", ",", "q2"}], "}"}], ",", 
   RowBox[{"Method", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"FAD", "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"q2", "+", "k"}], ",", "m"}], "}"}], "]"}], ",", 
      RowBox[{"FAD", "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"q1", "-", "p"}], ",", "m"}], "}"}], "]"}], ",", 
      RowBox[{"SPD", "[", 
       RowBox[{"p", ",", "q2"}], "]"}], ",", 
      RowBox[{"SPD", "[", 
       RowBox[{"k", ",", "q1"}], "]"}]}], "}"}]}]}], "]"}]], "Input",
 CellLabel->"In[6]:=",
 CellID->149942360],

Cell[BoxData[
 FormBox[
  RowBox[{"{", 
   RowBox[{
    FormBox[
     FractionBox[
      RowBox[{
       FormBox[
        FormBox["q1",
         TraditionalForm],
        TraditionalForm], 
       FormBox["\<\"\[CenterDot]\"\>",
        TraditionalForm], 
       FormBox[
        FormBox["q2",
         TraditionalForm],
        TraditionalForm]}], 
      RowBox[{
       InterpretationBox[
        SuperscriptBox[
         RowBox[{
          FormBox["\<\"(\"\>",
           TraditionalForm], 
          FormBox[
           FormBox[
            RowBox[{
             FormBox["p",
              TraditionalForm], "+", 
             FormBox["q1",
              TraditionalForm]}],
            TraditionalForm],
           TraditionalForm], 
          FormBox["\<\")\"\>",
           TraditionalForm]}], "2"],
        SequenceForm[
         FeynCalc`Pair[
         FeynCalc`Momentum[$CellContext`p, D] + 
          FeynCalc`Momentum[$CellContext`q1, D], 
          FeynCalc`Momentum[$CellContext`p, D] + 
          FeynCalc`Momentum[$CellContext`q1, D]]],
        Editable->False], ".", 
       InterpretationBox[
        SuperscriptBox[
         RowBox[{
          FormBox["\<\"(\"\>",
           TraditionalForm], 
          FormBox[
           FormBox[
            RowBox[{
             FormBox["q2",
              TraditionalForm], "-", 
             FormBox["k",
              TraditionalForm]}],
            TraditionalForm],
           TraditionalForm], 
          FormBox["\<\")\"\>",
           TraditionalForm]}], "2"],
        SequenceForm[
         FeynCalc`Pair[-FeynCalc`Momentum[$CellContext`k, D] + 
          FeynCalc`Momentum[$CellContext`q2, D], -
           FeynCalc`Momentum[$CellContext`k, D] + 
          FeynCalc`Momentum[$CellContext`q2, D]]],
        Editable->False]}]],
     TraditionalForm], ",", 
    RowBox[{"{", 
     RowBox[{
      FormBox[
       FractionBox["1", 
        InterpretationBox[
         RowBox[{
          SuperscriptBox[
           RowBox[{
            FormBox["\<\"(\"\>",
             TraditionalForm], 
            FormBox[
             FormBox[
              RowBox[{
               FormBox["k",
                TraditionalForm], "+", 
               FormBox["q2",
                TraditionalForm]}],
              TraditionalForm],
             TraditionalForm], 
            FormBox["\<\")\"\>",
             TraditionalForm]}], "2"], "\[InvisibleSpace]", "\<\"-\"\>", 
          "\[InvisibleSpace]", 
          SuperscriptBox["m", "2"]}],
         SequenceForm[
          FeynCalc`Pair[
          FeynCalc`Momentum[$CellContext`k, D] + 
           FeynCalc`Momentum[$CellContext`q2, D], 
           FeynCalc`Momentum[$CellContext`k, D] + 
           FeynCalc`Momentum[$CellContext`q2, D]], "-", $CellContext`m^2],
         Editable->False]],
       TraditionalForm], ",", 
      FormBox[
       FractionBox["1", 
        InterpretationBox[
         RowBox[{
          SuperscriptBox[
           RowBox[{
            FormBox["\<\"(\"\>",
             TraditionalForm], 
            FormBox[
             FormBox[
              RowBox[{
               FormBox["q1",
                TraditionalForm], "-", 
               FormBox["p",
                TraditionalForm]}],
              TraditionalForm],
             TraditionalForm], 
            FormBox["\<\")\"\>",
             TraditionalForm]}], "2"], "\[InvisibleSpace]", "\<\"-\"\>", 
          "\[InvisibleSpace]", 
          SuperscriptBox["m", "2"]}],
         SequenceForm[
          
          FeynCalc`Pair[-FeynCalc`Momentum[$CellContext`p, D] + 
           FeynCalc`Momentum[$CellContext`q1, D], -
            FeynCalc`Momentum[$CellContext`p, D] + 
           FeynCalc`Momentum[$CellContext`q1, D]], "-", $CellContext`m^2],
         Editable->False]],
       TraditionalForm], ",", 
      RowBox[{
       FormBox[
        FormBox["p",
         TraditionalForm],
        TraditionalForm], 
       FormBox["\<\"\[CenterDot]\"\>",
        TraditionalForm], 
       FormBox[
        FormBox["q2",
         TraditionalForm],
        TraditionalForm]}], ",", 
      RowBox[{
       FormBox[
        FormBox["k",
         TraditionalForm],
        TraditionalForm], 
       FormBox["\<\"\[CenterDot]\"\>",
        TraditionalForm], 
       FormBox[
        FormBox["q1",
         TraditionalForm],
        TraditionalForm]}]}], "}"}]}], "}"}], TraditionalForm]], "Output",
 ImageSize->{510, 40},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[6]=",
 CellID->1567923042]
}, Open  ]],

Cell["Cartesian integrals are also supported.", "Notes",
 CellID->1222037835],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"CFAD", "[", 
  RowBox[{"q1", ",", "q2", ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"q1", "-", "l1"}], ",", "m1"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"q2", "-", "l2"}], ",", "m2"}], "}"}]}], "]"}]], "Input",
 CellLabel->"In[7]:=",
 CellID->478538861],

Cell[BoxData[
 FormBox[
  FractionBox["1", 
   RowBox[{
    TemplateBox[{"\"(\"",SuperscriptBox[
       FormBox[
        FormBox[
         StyleBox["q1", Bold, StripOnInput -> False], TraditionalForm], 
        TraditionalForm], 2],"\"-\"",
      RowBox[{"\[ImaginaryI]", " ", "\"\[Eta]\""}],"\")\""},
     "RowDefault"], ".", 
    TemplateBox[{"\"(\"",SuperscriptBox[
       FormBox[
        FormBox[
         StyleBox["q2", Bold, StripOnInput -> False], TraditionalForm], 
        TraditionalForm], 2],"\"-\"",
      RowBox[{"\[ImaginaryI]", " ", "\"\[Eta]\""}],"\")\""},
     "RowDefault"], ".", 
    TemplateBox[{"\"(\"",RowBox[{
        SuperscriptBox[
         RowBox[{
           FormBox["\"(\"", TraditionalForm], 
           FormBox[
            FormBox[
             RowBox[{
               FormBox[
                StyleBox["q1", Bold, StripOnInput -> False], TraditionalForm],
                "-", 
               FormBox[
                StyleBox["l1", Bold, StripOnInput -> False], 
                TraditionalForm]}], TraditionalForm], TraditionalForm], 
           FormBox["\")\"", TraditionalForm]}], 2]}],"\"+\"","m1","\"-\"",
      RowBox[{"\[ImaginaryI]", " ", "\"\[Eta]\""}],"\")\""},
     "RowDefault"], ".", 
    TemplateBox[{"\"(\"",RowBox[{
        SuperscriptBox[
         RowBox[{
           FormBox["\"(\"", TraditionalForm], 
           FormBox[
            FormBox[
             RowBox[{
               FormBox[
                StyleBox["q2", Bold, StripOnInput -> False], TraditionalForm],
                "-", 
               FormBox[
                StyleBox["l2", Bold, StripOnInput -> False], 
                TraditionalForm]}], TraditionalForm], TraditionalForm], 
           FormBox["\")\"", TraditionalForm]}], 2]}],"\"+\"","m2","\"-\"",
      RowBox[{"\[ImaginaryI]", " ", "\"\[Eta]\""}],"\")\""},
     "RowDefault"]}]], TraditionalForm]], "Output",
 ImageSize->{442, 40},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[7]=",
 CellID->1507736279]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"FCLoopBasisFindCompletion", "[", 
  RowBox[{"%", ",", 
   RowBox[{"{", 
    RowBox[{"q1", ",", "q2"}], "}"}]}], "]"}]], "Input",
 CellLabel->"In[8]:=",
 CellID->958430790],

Cell[BoxData[
 FormBox[
  RowBox[{"{", 
   RowBox[{
    FormBox[
     FractionBox["1", 
      RowBox[{
       TemplateBox[{"\"(\"",SuperscriptBox[
          FormBox[
           FormBox[
            StyleBox["q1", Bold, StripOnInput -> False], TraditionalForm], 
           TraditionalForm], 2],"\"-\"",
         RowBox[{"\[ImaginaryI]", " ", "\"\[Eta]\""}],"\")\""},
        "RowDefault"], ".", 
       TemplateBox[{"\"(\"",SuperscriptBox[
          FormBox[
           FormBox[
            StyleBox["q2", Bold, StripOnInput -> False], TraditionalForm], 
           TraditionalForm], 2],"\"-\"",
         RowBox[{"\[ImaginaryI]", " ", "\"\[Eta]\""}],"\")\""},
        "RowDefault"], ".", 
       TemplateBox[{"\"(\"",RowBox[{
           SuperscriptBox[
            RowBox[{
              FormBox["\"(\"", TraditionalForm], 
              FormBox[
               FormBox[
                RowBox[{
                  FormBox[
                   StyleBox["q1", Bold, StripOnInput -> False], 
                   TraditionalForm], "-", 
                  FormBox[
                   StyleBox["l1", Bold, StripOnInput -> False], 
                   TraditionalForm]}], TraditionalForm], TraditionalForm], 
              FormBox["\")\"", TraditionalForm]}], 2]}],"\"+\"","m1","\"-\"",
         RowBox[{"\[ImaginaryI]", " ", "\"\[Eta]\""}],"\")\""},
        "RowDefault"], ".", 
       TemplateBox[{"\"(\"",RowBox[{
           SuperscriptBox[
            RowBox[{
              FormBox["\"(\"", TraditionalForm], 
              FormBox[
               FormBox[
                RowBox[{
                  FormBox[
                   StyleBox["q2", Bold, StripOnInput -> False], 
                   TraditionalForm], "-", 
                  FormBox[
                   StyleBox["l2", Bold, StripOnInput -> False], 
                   TraditionalForm]}], TraditionalForm], TraditionalForm], 
              FormBox["\")\"", TraditionalForm]}], 2]}],"\"+\"","m2","\"-\"",
         RowBox[{"\[ImaginaryI]", " ", "\"\[Eta]\""}],"\")\""},
        "RowDefault"]}]],
     TraditionalForm], ",", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       FormBox[
        FormBox[
         StyleBox["l1",
          StripOnInput->False,
          FontWeight->Bold],
         TraditionalForm],
        TraditionalForm], 
       FormBox["\<\"\[CenterDot]\"\>",
        TraditionalForm], 
       FormBox[
        FormBox[
         StyleBox["q2",
          StripOnInput->False,
          FontWeight->Bold],
         TraditionalForm],
        TraditionalForm]}], ",", 
      RowBox[{
       FormBox[
        FormBox[
         StyleBox["l2",
          StripOnInput->False,
          FontWeight->Bold],
         TraditionalForm],
        TraditionalForm], 
       FormBox["\<\"\[CenterDot]\"\>",
        TraditionalForm], 
       FormBox[
        FormBox[
         StyleBox["q1",
          StripOnInput->False,
          FontWeight->Bold],
         TraditionalForm],
        TraditionalForm]}], ",", 
      RowBox[{
       FormBox[
        FormBox[
         StyleBox["q1",
          StripOnInput->False,
          FontWeight->Bold],
         TraditionalForm],
        TraditionalForm], 
       FormBox["\<\"\[CenterDot]\"\>",
        TraditionalForm], 
       FormBox[
        FormBox[
         StyleBox["q2",
          StripOnInput->False,
          FontWeight->Bold],
         TraditionalForm],
        TraditionalForm]}]}], "}"}]}], "}"}], TraditionalForm]], "Output",
 ImageSize->{455, 71},
 ImageMargins->{{0, 0}, {0, 0}},
 ImageRegion->{{0, 1}, {0, 1}},
 CellLabel->"Out[8]=",
 CellID->1992108554]
}, Open  ]]
}, Open  ]]
}, Open  ]],

Cell[" ", "FooterCell"]
},
Saveable->False,
ScreenStyleEnvironment->"Working",
WindowSize->{725, 750},
WindowMargins->{{-10, Automatic}, {Automatic, -8}},
WindowTitle->"FCLoopBasisFindCompletion",
TaggingRules->{
 "ModificationHighlight" -> False, "ColorType" -> "SymbolColor", "LinkTrails" -> 
  GridBox[{{
      RowBox[{
        ButtonBox[
        "FeynCalc", ButtonData -> "paclet:FeynCalc/guide/FeynCalc", 
         BaseStyle -> {"Link", "DockedLinkTrail"}]}]}}, ColumnAlignments -> 
    Left], "HasOptions" -> False, "ExampleCounter" -> 1, "NeedPlatMsgIn" -> 
  None, "RootCaptions" -> "", 
  "Metadata" -> {
   "built" -> "{2020, 6, 20, 19, 5, 35.019594}", 
    "history" -> {"9.3", "", "", ""}, "context" -> "FeynCalc`", 
    "keywords" -> {}, "specialkeywords" -> {}, 
    "tutorialcollectionlinks" -> {}, "index" -> True, "label" -> 
    "Feyn Calc Symbol", "language" -> "en", "paclet" -> "FeynCalc", "status" -> 
    "None", "summary" -> 
    "FCLoopBasisFindCompletion[int, {q1, q2, ...}] determines propagators \
that need to be included in the loop integral int (that depends on the loop \
momenta q1,q2,...), to ensure that the propagators of int form a basis. For \
integrals with propagators that do not form a basis, such a completion must \
be found prior to processing those integrals with tools that do \
Integration-By-Parts (IBP) reduction (e.g. FIRE). Furthermore, int must not \
contain propagators that are linearly dependent.", "synonyms" -> {}, 
    "tabletags" -> {}, "title" -> "FCLoopBasisFindCompletion", 
    "titlemodifier" -> "", "windowtitle" -> "FCLoopBasisFindCompletion", 
    "type" -> "Symbol", "uri" -> "FeynCalc/ref/FCLoopBasisFindCompletion"}, 
  "SearchTextTranslated" -> ""},
CellContext->"Global`",
FrontEndVersion->"10.4 for Linux x86 (64-bit) (April 11, 2016)",
StyleDefinitions->Notebook[{
   Cell[
    StyleData[
    StyleDefinitions -> FrontEnd`FileName[{"Wolfram"}, "Reference.nb"]]], 
   Cell[
    StyleData["Input"], CellContext -> "Global`"], 
   Cell[
    StyleData["Output"], CellContext -> "Global`"]}, Visible -> False, 
  FrontEndVersion -> "10.4 for Linux x86 (64-bit) (April 11, 2016)", 
  StyleDefinitions -> "Default.nb"]
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{
 "PrimaryExamplesSection"->{
  Cell[5981, 180, 387, 15, 31, "PrimaryExamplesSection",
   CellTags->"PrimaryExamplesSection",
   CellID->440292796]}
 }
*)
(*CellTagsIndex
CellTagsIndex->{
 {"PrimaryExamplesSection", 29559, 976}
 }
*)
(*NotebookFileOutline
Notebook[{
Cell[597, 21, 2364, 55, 53, "AnchorBarGrid",
 CellID->1],
Cell[2964, 78, 302, 11, 45, "ObjectNameGrid"],
Cell[CellGroupData[{
Cell[3291, 93, 912, 21, 154, "Usage",
 CellID->982511436],
Cell[CellGroupData[{
Cell[4228, 118, 739, 24, 31, "NotesSection",
 CellGroupingRules->{"SectionGrouping", 50},
 CellID->1043018306],
Cell[4970, 144, 31, 0, 70, "SectionHeaderSpacer"],
Cell[CellGroupData[{
Cell[5026, 148, 128, 3, 70, "Input",
 CellID->725102416],
Cell[5157, 153, 763, 20, 75, "Output",
 CellID->1566384245]
}, Open  ]]
}, Closed]]
}, Open  ]],
Cell[CellGroupData[{
Cell[5981, 180, 387, 15, 31, "PrimaryExamplesSection",
 CellTags->"PrimaryExamplesSection",
 CellID->440292796],
Cell[CellGroupData[{
Cell[6393, 199, 195, 6, 26, "ExampleSection",
 CellID->932510835],
Cell[CellGroupData[{
Cell[6613, 209, 207, 7, 27, "Input",
 CellID->680451350],
Cell[6823, 218, 1414, 48, 64, "Output",
 CellID->2102952412]
}, Open  ]],
Cell[CellGroupData[{
Cell[8274, 271, 169, 5, 27, "Input",
 CellID->1061934835],
Cell[8446, 278, 2006, 66, 64, "Output",
 CellID->1399048154]
}, Open  ]],
Cell[CellGroupData[{
Cell[10489, 349, 224, 8, 27, "Input",
 CellID->437279666],
Cell[10716, 359, 1175, 38, 64, "Output",
 CellID->1080324517]
}, Open  ]],
Cell[CellGroupData[{
Cell[11928, 402, 196, 6, 27, "Input",
 CellID->1012989858],
Cell[12127, 410, 1630, 54, 64, "Output",
 CellID->1807818720]
}, Open  ]],
Cell[CellGroupData[{
Cell[13794, 469, 254, 9, 27, "Input",
 CellID->152449709],
Cell[14051, 480, 1672, 63, 61, "Output",
 CellID->227748313]
}, Open  ]],
Cell[CellGroupData[{
Cell[15760, 548, 681, 21, 45, "Input",
 CellID->149942360],
Cell[16444, 571, 4513, 150, 61, "Output",
 CellID->1567923042]
}, Open  ]],
Cell[20972, 724, 77, 1, 32, "Notes",
 CellID->1222037835],
Cell[CellGroupData[{
Cell[21074, 729, 301, 10, 27, "Input",
 CellID->478538861],
Cell[21378, 741, 2021, 54, 61, "Output",
 CellID->1507736279]
}, Open  ]],
Cell[CellGroupData[{
Cell[23436, 800, 195, 6, 27, "Input",
 CellID->958430790],
Cell[23634, 808, 3571, 111, 92, "Output",
 CellID->1992108554]
}, Open  ]]
}, Open  ]]
}, Open  ]],
Cell[27244, 924, 23, 0, 41, "FooterCell"]
}
]
*)

(* End of internal cache information *)

